Forward Error Correction (“FEC”) is used in many communication systems, including without limitation wireless communications systems. One type of codes used for FEC are low density parity-check (“LDPC”) codes. LDPC codes may be found in various specifications, including without limitation IEEE 802.11n and 802.11ac (“WiFi”), IEEE 802.16 (“WiMax”), WiMedia UWB, and DVB-S2, among others. Furthermore, LDPC codes may be used in various proprietary systems without adherence to a particular published specification, including for example a microwave backhaul for communication to and from a base station in a cellular or wireless network.
A subclass of LDPC codes are accumulate-repeat-accumulate codes (“ARA”). ARA codes may have an error correcting capability with a low error floor and may be encoded in linear time. However, for LDPC codes, including without limitation ARA codes, encoders and decoders for such have been too complex and/or too large. This has made employing such LDPC codes less competitive than other types of FEC codes, such as for example Reed-Solomon codes, convolutional codes with a Viterbi decoder, and Turbo codes.
Accordingly, it would be desirable and useful to provide an LDPC encoder and/or decoder that is less complex than prior LDPC encoders and/or decoders, so as to make LDPC codes more competitive with respect to usage of other types of FEC codes.